Channels modeled after the CSP model are inherently synchronous: a process waiting to receive an object from a channel will block until the object is sent. This is also called rendezvous behaviour. Typical supported operations are presented below using the example of the libthread channel API. * Channel creation of fixed or variable size, returning a reference or handleChannel * chancreate(int elemsize, int bufsize) * sending to a channel int chansend(Channel *c, void *v) * receiving from a channel int chanrecv(Channel *c, void *v)